package Guigu10.Wrapper;
/*
 * 基本数据类型、包装类、String类的使用：
 * 1、java提供了8种基本数据类型的包装类，使得剧本数据类型的变量具有类的特征
 * 
 * 2、掌握的：基本数据类型、包装类、String三者之间的转换
 */
import org.junit.Test;

public class WrapperTest {

	//基本数据类型——>包装类：调用包装类的构造器
	@Test
	public void test1()
	{
		int num = 10;
		Integer num1 = new Integer(num);
		System.out.println(num1);
		
		Integer num2 = new Integer("152");
		System.out.println(num2);
		
		//报异常
//		Integer num3 = new Integer("123ada");
//		System.out.println(num3);
		
		Float float1 = new Float(12.3f);
		System.out.println(float1);
		
	}
	
	//包装类——>基本数据类型：调用包装类的XXX的XXXvalue()
	@Test
	public void test2()
	{
		Integer num1 = new Integer(12);
		int n1 = num1.intValue();
		System.out.println(n1+12);
		
		Float f1 = new Float(12.3f);
		float f2 = f1.floatValue();
		System.out.println(f2+10.3);
	}
	
	/*
	 * JDK 5.0新特性：自动装箱与自动拆箱
	 * 
	 */
	@Test
	public void test3()
	{
		//自动装箱：基本数据类型——>包装类
		int num1 = 10;
		Integer num2 = num1;//自动装箱
		System.out.println(num2);
		
		boolean b1 = true;
		Boolean b2 = b1;
		System.out.println(b2);
		
		//自动拆箱：包装类——>基本数据类型
		//int num3 = num2;//自动拆箱
		//System.out.println(num3);
		System.out.println(num2+10);
	}
	
	//基本数据类型、包装类——>String类型：调用String重载的valueOf(XXX XXX)
	@Test
	public void test4()
	{
		int num1 = 10;
		//方式1：连接运算
		String str = num1+"";
		System.out.println(str);
		//方式2：调用String的valueOf(XXX XXX)
		float f1 = 12.3f;
		String str2 = String.valueOf(f1);
	}
	
	//String类型——>基本数据类型、包装类:调用包装类的parseXXX()
	@Test
	public void test5()
	{
		String str = "123";
		int num = Integer.parseInt(str);
		System.out.println(num);
		
		String str2 = "true";
		boolean b = Boolean.parseBoolean(str2);
		System.out.println(b);
	}
}
